package com.servlet.form;

import java.io.IOException;
import java.sql.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.listener.ContextListener;
import com.servlet.model.database.BaseAcces;
import com.servlet.security.MD5;

public class ProfilPasswordForm extends HttpServlet
{
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
	{
		boolean correct = false;
		
		HttpSession session = request.getSession();
		//BaseAcces base = (BaseAcces) this.config.getServletContext().getAttribute("base");
		
		String email = (String) session.getAttribute("email");
		
		BaseAcces base = ContextListener.base;
		
		String ancienMotDePasse = request.getParameter("ancienMotDePasse");
		String nouveauMotDePasse = request.getParameter("nouveauMotDePasse");
		String nouveauMotDePasse2 = request.getParameter("nouveauMotDePasse2");
		
		String resultat = null;
	
		if( ancienMotDePasse != null && ancienMotDePasse != "" && nouveauMotDePasse != null && nouveauMotDePasse != "" && nouveauMotDePasse2 != null && nouveauMotDePasse2 != "" )
		{
			if( Format.verifyPasswd(nouveauMotDePasse) )
			{
				if( nouveauMotDePasse.compareTo(nouveauMotDePasse2) == 0 )
				{
					ancienMotDePasse = MD5.generateCode(ancienMotDePasse);
					nouveauMotDePasse = MD5.generateCode(nouveauMotDePasse);
					if( base.verifyAccount(email, ancienMotDePasse) )
					{
						correct = true;
					}
					else
					{
						resultat = "ancien mot de passe incorrect";
					}
				}
				else
				{
					resultat = "les deux mots de passe sont différents";
				}
			}
			else
			{
				resultat = "nouveau mot de passe non valide";
			}
		}
		else
		{
			resultat = "vous devez remplir tous les champs";
		}
		
		if( correct )
		{
			System.out.println("Changement mot de passe : " + ancienMotDePasse + " " + nouveauMotDePasse + " " + nouveauMotDePasse2 );

			base.modifyPasswd(email, ancienMotDePasse, nouveauMotDePasse);
			
			session.setAttribute("resultat", "Modification réussie !! ");
			
			response.sendRedirect("profil");
		}
		else
		{
			System.out.println(resultat);
			
			session.setAttribute("resultat", "La modification a échoué : " + resultat );
			
			response.sendRedirect("profilPassword");
		}
	}
}
